<!--
  Copyright JS Foundation and other contributors, http://js.foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<script type="text/html" data-help-name="switch">
    <p>Weiterleitung von Nachrichten basierend auf den Werten ihrer Eigenschaften oder Position in der Sequenz.</p>
    <h3>Details</h3>
    <p>Bei Eingang einer Nachricht wertet der Node einstellbare Regeln aus und
       leitet die Nachricht an den entsprechenden Ausgang der erfüllten Regel weiter.</p>
    <p>Optional kann der Node so eingestellt werden, dass er die Auswertung nach der ersten erfüllten Regel beendet.</p>
    <p>Die Regeln können anhand einer einzelnen Nachrichteneigenschaft, einer Flow- oder globalen Kontext-Eigenschaft oder
       anhand dem Ergebnis eines JSONata-Ausdrucks ausgewertet werden.</p>
    <h4><b>Regeln</b></h4>
    <p>Es gibt vier Regeltypen:</p>
    <ol>
        <li><b>value rules</b>: Regeln werden hinsichtlich einer eingestellten Eigenschaft ausgewertet</li>
        <li><b>sequence rules</b>: Regeln beziehen sich auf Nachrichtensequenzen,
            wie sie beispielsweise durch den split-Node erzeugt werden</li>
        <li>Ein <b>JSONata-Ausdruck</b> kann die gesamte Eingangsnachricht auswerten und einen <code>true</code>-Wert zurückliefern,
            um eine Regelerfüllung zu signalisieren</li>
        <li>Die <b>ansonsten</b>-Regel wird angewendet, wenn keine vorhergehende Regel übereinstimmt</li>
    </ol>
    <h4><b>Bemerkungen</b></h4>
    <p>Die Regeln <code>ist true/false</code> und <code>ist null</code> führen strenge Vergleiche mit diesen Typen durch.
       Sie konvertieren nicht zwischen den Typen.</p>
    <p>Die Regeln <code>ist leer</code> und <code>ist nicht leer</code> können nur für Zeichenfolgen (string), Datenfelder (array) und binäre Puffer (buffer) benutzt werden,
       sowie für Objekte, bei denen auf die Anzahl der Eigenschaften geprüft wird.
       Die Regel ist niemals erfült, wenn die Eigenschaft einen <code>boolean</code>-, <code>null</code>- oder <code>undefined</code>-Wert hat.
    <h4><b>Behandlung von Nachrichtensequenzen</b></h4>
    <p>Standardmäßig ändert der Node nicht die <code>msg.parts</code>-Eigenschaft für Nachrichten, die Teil einer Sequenz sind.</p>
    <p>Bei aktivierter Option <b>Nachrichtensequenzen erzeugen</b> werden Nachrichtensequenzen für jede passende Regel erzeugt.
       In diesem Modus puffert der Node die gesamte eingehende Sequenz, bevor er die neuen Sequenzen weiter sendet.
       Mit der Laufzeiteinstellung <code>nodeMessageBufferMaxLength</code> kann begrenzt werden,
       wie viele Nachrichten im Node zwischengespeichert werden sollen.</p>
</script>
